#ifndef _LISTENER_H_
#define _LISTENER_H_

#include "../event/Event.h"
#include "../../driver/Driver.h"
#include "../../container/vector/Vector.h"

/*
	class : Listener
	desc : This listens for an event to 
		occur and performs a series of callbacks
		that must be performed when the even is fired.
*/
class Listener
{
	private:
		//event that listener listens for
		Event event;
		//callbacks the listener performs when event fires
		Vector<Driver> callbacks;
	public:
		//default constructor
		Listener();
		//creates a listener from an event
		Listener(Event& event);
		//registers a callback with the listener.
		void registerCallback(Driver& d);
		//runs the drivers of the callback
		void runDrivers();
		
};

#endif
